Developers coding a program typically want to evaluate an expression or a function that is external to the program being coded and resides in another program or a utility application-programming interface (API). Typically determining which method or version of a set of methods may include guesswork.
For example, the developer uses a date time conversion utility created by fellow programmers. In the application code, the developer is using CurrentDate which is in a known ISO format in the following code statement:
DateTimeUtil.convertISODateToDDMMMYY(CurrentDate);
The utility DateTimeUtil has a number of overloaded methods similar to the example code statement including the following:
#1 public static string convertISODateToDDMMMYY(Date ISODate);
#2 public static string convertISODateToDDMMYY(String ISODate);
#3 public static int convertISODateToDDMMMYY(Date ISODate); and
#4 public static date convertISODateToDDMMMYY(Date ISODate);
Each of the example methods yields a different outcome depending on the requirement. The developer therefore has to traverse the documentation to determine which method suits a specific requirement, or review the DateTimeUtil code to identify the result generated per the requirement.
Using the technique referenced in the example to identify behavior of the method is typically error prone and non-productive.